//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _IinhibitorsBioAssayKd_h_
#define	_IinhibitorsBioAssayKd_h_
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "libraries.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class InhibitorsBioAssayKd {
    
  private:

    String*             namefileListInhibitors;
    String*             namefileListProteins;
    String*             namefileMatrix;
    String*             namefileResult;

    TListE <String>*    inhibitorsList;
    TListE <String>*    proteinsList;

    double**            matrixValue;
    

  protected:

    bool                ClearMatrixValue();
    bool                AllocateMatrixValue();

    bool                SplitColumn(char*, TListE <String>*, const char*);

  public:
      
    InhibitorsBioAssayKd();
    InhibitorsBioAssayKd(String*, String*, String*);
    
    ~InhibitorsBioAssayKd();

    void                NamefileListInhibitors(String*);
    void                NamefileListProteins(String*);
    void                NamefileMatrix(String*);
    void                NamefileResult(String*);

    void                InhibitorsList(TListE <String>*);
    void                ProteinsList(TListE <String>*);

    void                MatrixValue(double**);
    
    String*             NamefileListInhibitors(void);
    String*             NamefileListProteins(void);
    String*             NamefileMatrix(void);
    String*             NamefileResult(void);

    TListE <String>*    InhibitorsList(void);
    TListE <String>*    ProteinsList(void);

    double**            MatrixValue(void);

    bool                LoadListFile();
    bool                LoadListFile(String*, String*);

    bool                LoadMatrix();

    bool                ComputeNormalizedKdEuclidianDistance();
    bool                ComputeKdEuclidianDistance();
    
};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
